package com.its.util;

import lombok.Data;

/**
 * @author 朱厚强
 * @version 1.0
 * @classname SkipController
 */
@Data
public class Result<T> {

    private Boolean ok;

    private Integer code;

    private String message;

    private T data ;

    // 构造器私有
    private Result(){}

    // 通用返回成功
    public static Result ok() {
        Result r = new Result();
        r.setOk(true);
        r.setCode(200);
        r.setMessage("成功");
        return r;
    }

    // 通用返回失败，未知错误
    public static Result error() {
        Result r = new Result();
        r.setOk(false);
        r.setCode(501);
        r.setMessage("未知错误");
        return r;
    }

    /**使用链式编程，返回类本身-----**/
    
    // 自定义返回数据
    public Result data(T data) {
        this.setData(data);
        return this;
    }

    // 自定义状态信息
    public Result message(String message) {
        this.setMessage(message);
        return this;
    }

    // 自定义状态码
    public Result code(Integer code) {
        this.setCode(code);
        return this;
    }

    // 自定义返回结果
    public Result ok(Boolean ok) {
        this.setOk(ok);
        return this;
    }
}
